-- Network Working Group                                        M. Daniele
-- Request for Comments: 2851                  Compaq Computer Corporation
-- Category: Standards Track                                   B. Haberman
--                                                         Nortel Networks
--                                                             S. Routhier
--                                                Wind River Systems, Inc.
--                                                        J. Schoenwaelder
--                                                         TU Braunschweig
--                                                               June 2000


--            Textual Conventions for Internet Network Addresses

   INET-ADDRESS-MIB DEFINITIONS ::= BEGIN


   IMPORTS
     MODULE-IDENTITY, mib-2 FROM SNMPv2-SMI
     TEXTUAL-CONVENTION     FROM SNMPv2-TC;


   inetAddressMIB MODULE-IDENTITY
     LAST-UPDATED "200006080000Z"
     ORGANIZATION
         "IETF Operations and Management Area"
     CONTACT-INFO
         "Mike Daniele
          Compaq Computer Corporation
          110 Spit Brook Rd
          Nashua, NH  03062, USA

          Phone: +1 603 884-1423
          EMail: daniele@zk3.dec.com

          Brian Haberman
          Nortel Networks
          4039 Emperor Blvd., Suite 200
          Durham, NC  27703, USA

          Phone: +1 919 992-4439
          EMail: haberman@nortelnetworks.com

          Shawn A. Routhier
          Wind River Systems, Inc.
          1 Tara Blvd, Suite 403
          Nashua, NH  03062, USA

          Phone: +1 603 897-2000
          EMail: sar@epilogue.com

          Juergen Schoenwaelder
          TU Braunschweig
          Bueltenweg 74/75
          38106 Braunschweig, Germany

          Phone: +49 531 391-3289
          EMail: schoenw@ibr.cs.tu-bs.de

          Send comments to mibs@ops.ietf.org."

   DESCRIPTION
     "This MIB module defines textual conventions for
      representing Internet addresses. An Internet
      address can be an IPv4 address, an IPv6 address
      or a DNS domain name."

   REVISION     "200006080000Z"
   DESCRIPTION
       "Initial version, published as RFC 2851."
   ::= { mib-2 76 }

   InetAddressType ::= TEXTUAL-CONVENTION
     STATUS      current
     DESCRIPTION
         "A value that represents a type of Internet address.

          unknown(0)  An unknown address type. This value MUST
                      be used if the value of the corresponding
                      InetAddress object is a zero-length string.
                      It may also be used to indicate an IP address
                      which is not in one of the formats defined
                      below.

          ipv4(1)     An IPv4 address as defined by the
                      InetAddressIPv4 textual convention.

          ipv6(2)     An IPv6 address as defined by the
                      InetAddressIPv6 textual convention.

          dns(16)     A DNS domain name as defined by the
                      InetAddressDNS textual convention.

          Each definition of a concrete InetAddressType value must be
          accompanied by a definition of a textual convention for use
          with that InetAddressType.

          The InetAddressType textual convention SHOULD NOT be subtyped
          in object type definitions to support future extensions. It
          MAY be subtyped in compliance statements in order to require
          only a subset of these address types for a compliant
          implementation."
     SYNTAX      INTEGER {
                     unknown(0),
                     ipv4(1),    -- these named numbers are aligned
                     ipv6(2),    -- with AddressFamilyNumbers from
                     dns(16)     -- IANA-ADDRESS-FAMILY-NUMBERS-MIB
                 }

   InetAddress ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION
         "Denotes a generic Internet address.

          An InetAddress value is always interpreted within the
          context of an InetAddressType value. The InetAddressType
          object which defines the context must be registered
          immediately before the object which uses the InetAddress
          textual convention. In other words, the object identifiers
          for the InetAddressType object and the InetAddress object
          MUST have the same length and the last sub-identifier of
          the InetAddressType object MUST be 1 less than the last
          sub-identifier of the InetAddress object.

          When this textual convention is used as the syntax of an
          index object, there may be issues with the limit of 128
          sub-identifiers specified in SMIv2, STD 58. In this case,
          the OBJECT-TYPE declaration MUST include a 'SIZE' clause
          to limit the number of potential instance sub-identifiers."
     SYNTAX      OCTET STRING (SIZE (0..255))

   InetAddressIPv4 ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "1d.1d.1d.1d"
     STATUS       current
     DESCRIPTION
         "Represents an IPv4 network address:

            octets   contents         encoding
             1-4     IP address       network-byte order

          The corresponding InetAddressType value is ipv4(1)."
     SYNTAX       OCTET STRING (SIZE (4))

   InetAddressIPv6 ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d"
     STATUS       current
     DESCRIPTION
         "Represents an IPv6 network address:

            octets   contents         encoding
             1-16    IPv6 address     network-byte order
            17-20    scope identifier network-byte order

          The corresponding InetAddressType value is ipv6(2).

          The scope identifier (bytes 17-20) MUST NOT be present
          for global IPv6 addresses. For non-global IPv6 addresses
          (e.g. link-local or site-local addresses), the scope
          identifier MUST always be present. It contains a link
          identifier for link-local and a site identifier for
          site-local IPv6 addresses.

          The scope identifier MUST disambiguate identical address
          values. For link-local addresses, the scope identifier will
          typically be the interface index (ifIndex as defined in the
          IF-MIB, RFC 2233) of the interface on which the address is
          configured.

          The scope identifier may contain the special value 0
          which refers to the default scope. The default scope
          may be used in cases where the valid scope identifier
          is not known (e.g., a management application needs to
          write a site-local InetAddressIPv6 address without
          knowing the site identifier value). The default scope
          SHOULD NOT be used as an easy way out in cases where
          the scope identifier for a non-global IPv6 is known."
     SYNTAX       OCTET STRING (SIZE (16|20))

   InetAddressDNS ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "255a"
     STATUS       current
     DESCRIPTION
         "Represents a DNS domain name. The name SHOULD be
          fully qualified whenever possible.

          The corresponding InetAddressType is dns(16).

          The DESCRIPTION clause of InetAddress objects that
          may have InetAddressDNS values must fully describe
          how (and when) such names are to be resolved to IP
          addresses."
     SYNTAX       OCTET STRING (SIZE (1..255))

   END